const OpenAI = require('openai')
let dayjs = require('dayjs')
const { dataToWrite } = require('../../libraryDB/utils/getLogs')
const openai = new OpenAI({
  baseURL: 'https://api.deepseek.com/v1',
  apiKey: 'sk-8379ca8dd9184c598b8d5411d71d2350',
})
const deepspeekMsg = async (req, res) => {
  try {
    const data = req.body
    const aiData = await getDeepSpeekApi(data.content, data.role)
    if (!aiData.data.success || !aiData) {
      return res.status(401).json(
        aiData || {
          message: 'AI服务未返回有效响应',
          success: false,
        }
      )
    } else {
      res.status(200).json({ ...aiData })
      dataToWrite(
        `${JSON.stringify([req.url, dayjs().format('YYYY-MM-DD HH:mm:ss')])},`
      )
    }
  } catch (error) {
    console.error('AI服务异常:', error)
    res.status(500).json({
      message: '服务器内部错误',
      error: error.message,
      time: dayjs().format('YYYY-MM-DD HH:mm:ss'),
    })
  }
}

// async function getDeepSpeekApi(content, role) {
//   try {
//     console.log('[DEEPSEEK REQUEST] Content:', content)
//     const controller = new AbortController()
//     const timeoutId = setTimeout(() => controller.abort(), 15000)

//     const completion = await openai.chat.completions.create({
//       model: 'deepseek-chat',
//       messages: [
//         {
//           role: role || 'user',
//           content: content,
//         },
//       ],
//       stream: false, // 启用流式传输
//       temperature: 0.5, // 降低随机性
//       max_tokens: 500, // 限制响应长度
//     })

//     clearTimeout(timeoutId)

//     // 流式处理结果
//     let fullContent = ''
//     for await (const chunk of completion) {
//       const content = chunk.choices[0]?.delta?.content || ''
//       fullContent += content
//       // 可以在此处实现分块传输（需要调整接口协议）
//     }

//     // console.log('[DEEPSEEK RESPONSE] Length:', fullContent.length)
//     // 增加结果校验
//     if (!completion?.choices?.[0]?.message?.content) {
//       return {
//         success: false,
//         message: '未获取到有效响应内容',
//         msgCode: 50003,
//       }
//     }
//     return {
//       msg: '操作成功',
//       time: dayjs().format('YYYY-MM-DD HH:mm:ss'),
//       msgCode: 10000,
//       success: true,
//       data: {
//         content: completion.choices[0].message.content,
//       },
//     }
//   } catch (error) {
//     if (error.name === 'AbortError') {
//       console.error('[DEEPSEEK TIMEOUT] 请求超时')
//       return {
//         msg: '响应超时，请简化问题后重试',
//         msgCode: 50002,
//         success: false,
//         time: dayjs().format('YYYY-MM-DD HH:mm:ss'),
//       }
//     }
//   }
// }
async function getDeepSpeekApi(content, role) {
  try {
    console.log('[DEEPSEEK REQUEST] Content:', content)
    const completion = await openai.chat.completions.create({
      model: 'deepseek-chat', // 修正模型名称
      messages: [
        {
          role: role || 'system', // 使用传入的 role 参数
          content: content, // 使用传入的 content 参数
        },
      ],
    })
    console.log('[DEEPSEEK RESPONSE]', completion.choices[0].message.content)

    return {
      msg: '操作成功',
      time: dayjs().format('YYYY-MM-DD HH:mm:ss'),
      msgCode: 10000,
      data: {
        success: true,
        content: completion.choices[0].message.content,
      },
    }
  } catch (error) {
    console.error('[DEEPSEEK ERROR]', error)
    return {
      msg: 'AI服务暂时不可用',
      msgCode: 50001, // 使用更具体的错误码
      success: false,
      time: dayjs().format('YYYY-MM-DD HH:mm:ss'),
      error: error.message, // 传递具体错误信息
    }
  }
}
module.exports = { deepspeekMsg }
